#ifndef ALARM_H
#define ALARM_H

#include <QWidget>
#include "../TableWidgetForm.h"

struct AlarmStruct
{
    int id;
    int code;
    QString name;
    QString desc;
    QString prompt;
    int opt_code;
    QString req_user_lv;

    // 获取结构体成员名的字符串
    QString toFieldNames() const {
        return QString("code,name,desc,prompt,opt_code,req_user_lv");
    }

    // 获取结构体成员名的字符串
    QStringList toFieldTypes() const {
        QStringList _list;
        _list << typeid(code).name();
        _list << typeid(name).name();
        _list << typeid(desc).name();
        _list << typeid(prompt).name();
        _list << typeid(opt_code).name();
        _list << typeid(req_user_lv).name();
        return _list;
    }
};

class Alarm
{
public:
    Alarm();

    //初始化UI
    static void InitUI(const QString& fileName, QList<QPair<QWidget *, QString>>& widgets, QMap<int, QList<TableWidgetForm*>>& m_pTableWidgetFormMap);

    //保存
    static bool SaveUI(const QString& fileName, const QMap<int, QList<TableWidgetForm*>>& m_pTableWidgetFormMap);

    //解析
    static void Analysis(const QString& path, QMap<int, QList<QList<AlarmStruct>>>& AlarmStructMap);

    //保存
    static bool SaveXml(const QString& path, const QList<AlarmStruct>& AlarmStructMap);
};

#endif // ALARM_H
